//package com.openvas.commons.common.utils.http;
//
//import org.apache.http.NameValuePair;
//import org.apache.http.ParseException;
//import org.apache.http.client.ClientProtocolException;
//import org.apache.http.client.entity.UrlEncodedFormEntity;
//import org.apache.http.client.methods.CloseableHttpResponse;
//import org.apache.http.client.methods.HttpGet;
//import org.apache.http.client.methods.HttpPost;
//import org.apache.http.client.utils.URIBuilder;
//import org.apache.http.entity.ContentType;
//import org.apache.http.entity.StringEntity;
//import org.apache.http.impl.client.CloseableHttpClient;
//import org.apache.http.impl.client.HttpClients;
//import org.apache.http.message.BasicNameValuePair;
//import org.apache.http.util.EntityUtils;
//
//import java.io.IOException;
//import java.net.URI;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
///**
// * Http客户端工具类
// */
//public class HttpClientUtil {
//
//	/**
//	 * 带参数的get请求
//	 * @param url
//	 * @param param
//	 * @return String
//	 */
//	public static String doGet(String url, Map<String, String> param) {
//		// 创建Httpclient对象
//		CloseableHttpClient httpclient = HttpClients.createDefault();
//
//		String resultString = "";
//		CloseableHttpResponse response = null;
//		try {
//			// 创建uri
//			URIBuilder builder = new URIBuilder(url);
//			if (param != null) {
//				for (String key : param.keySet()) {
//					builder.addParameter(key, param.get(key));
//				}
//			}
//			URI uri = builder.build();
//			// 创建http GET请求 由客户端执行(发送)GET请求
//			HttpGet httpGet = new HttpGet(uri);
//			// 执行请求
//			response = httpclient.execute(httpGet);
//			// 判断返回状态是否为200
//			if (response.getStatusLine().getStatusCode() == 200) {
//				/**
//				 * response.getEntity()不能调用多次，只能调用获取一次，
//				 * 		存成一个临时的变量接收一下，在用这个临时变量进行后续的逻辑，
//				 * 		如果不用变量接收的话，第二次再调用的时候取出来的对象就是null，导致后续处理报空指针异常！
//				 */
//				// 从响应模型中获取响应实体
//				resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
//			}
//		} catch (ClientProtocolException e) {
//			e.printStackTrace();
//		} catch (ParseException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		} catch (Exception e) {
//			e.printStackTrace();
//		} finally {
//			try {
//				// 释放资源
//				if (httpclient != null) {
//					httpclient.close();
//				}
//				if (response != null) {
//					response.close();
//				}
//			} catch (IOException e) {
//				e.printStackTrace();
//			}
//		}
//		return resultString;
//	}
//
//	/**
//	 * 不带参数的get请求
//	 * @param url
//	 * @return String
//	 */
//	public static String doGet(String url) {
//		return doGet(url, null);
//	}
//
//	/**
//	 * 带参数的post请求
//	 * @param url
//	 * @param param
//	 * @return String
//	 */
//	public static String doPost(String url, Map<String, String> param) {
//		// 创建Httpclient对象
//		CloseableHttpClient httpClient = HttpClients.createDefault();
//		CloseableHttpResponse response = null;
//		String resultString = "";
//		try {
//			// 创建Http Post请求 由客户端执行(发送)Post请求
//			HttpPost httpPost = new HttpPost(url);
//			// 创建参数列表
//			if (param != null) {
//				List<NameValuePair> paramList = new ArrayList<>();
//				for (String key : param.keySet()) {
//					paramList.add(new BasicNameValuePair(key, param.get(key)));
//				}
//				// 模拟表单
//				UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
//				httpPost.setEntity(entity);
//			}
//			// 执行http请求
//			response = httpClient.execute(httpPost);
//			// 从响应模型中获取响应实体
//			resultString = EntityUtils.toString(response.getEntity(), "utf-8");
//		} catch (ClientProtocolException e) {
//			e.printStackTrace();
//		} catch (ParseException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		} catch (Exception e) {
//			e.printStackTrace();
//		} finally {
//			try {
//				// 释放资源
//				if (httpClient != null) {
//					httpClient.close();
//				}
//				if (response != null) {
//					response.close();
//				}
//			} catch (IOException e) {
//				e.printStackTrace();
//			}
//		}
//		return resultString;
//	}
//
//	/**
//	 * 不带参数的post请求
//	 * @param url
//	 * @return String
//	 */
//	public static String doPost(String url) {
//		return doPost(url, null);
//	}
//
//	/**
//	 * 传送json类型的post请求
//	 * @param url
//	 * @param json
//	 * @return String
//	 */
//	public static String doPostJson(String url, String json) {
//		// 创建Httpclient对象
//		CloseableHttpClient httpClient = HttpClients.createDefault();
//		CloseableHttpResponse response = null;
//		String resultString = "";
//		try {
//			// 创建Http Post请求
//			HttpPost httpPost = new HttpPost(url);
//			// 创建请求内容
//			StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
//			httpPost.setEntity(entity);
//			// 执行http请求
//			response = httpClient.execute(httpPost);
//			resultString = EntityUtils.toString(response.getEntity(), "utf-8");
//		} catch (ClientProtocolException e) {
//			e.printStackTrace();
//		} catch (ParseException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		} catch (Exception e) {
//			e.printStackTrace();
//		} finally {
//			try {
//				// 释放资源
//				if (httpClient != null) {
//					httpClient.close();
//				}
//				if (response != null) {
//					response.close();
//				}
//			} catch (IOException e) {
//				e.printStackTrace();
//			}
//		}
//		return resultString;
//	}
//}